package com.helwen.test;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.junit.jupiter.api.Test;

import java.io.*;
import java.util.HashMap;
import java.util.Map;

/**
 * @author: heqiwen
 * @date : 2021/7/7 15:15
 */
public class ChatbotLaug {

    @Test
    public void readchat() throws FileNotFoundException, IOException {
        File file=new File("D:\\6月份\\chatterbot-master\\chatterbot_corpus\\data\\chinese\\trivia.yml");
        BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file)));
        String s="";
        int index=0;
        Map<String,Integer> map=new HashMap<String,Integer>();
        File excel=new File("C:\\develop\\docs\\聊天机器人\\知识导入样例文件.xls");
//文件输入流
        try {
            FileInputStream stream=new FileInputStream(excel);
//工作薄
            HSSFWorkbook workbook=new HSSFWorkbook(stream);

            HSSFSheet sheet=workbook.getSheetAt(0);
//
            int num=1;
            while((s=br.readLine()) != null){
                if(index>=2){
                    num++;
                    index=0;
                }
                HSSFRow row = sheet.getRow(num);
                if(row==null){
                    row= sheet.createRow(num);
                    row.createCell(0);
                    row.createCell(1);
                    row.createCell(2);
                    row.createCell(3);
                }
                if(s.indexOf("- - ")>-1){
                    HSSFCell cell = row.getCell(1);
                    String question=s.substring(4);
                    if(map.get(question)!=null){
                        cell.setCellValue("");
                        map.put(question,2);
                    }else{
                        cell.setCellValue(question);
                        map.put(question,1);
                        HSSFCell cellf = row.getCell(0);
                        cellf.setCellValue("生活");
                    }
                    System.out.println("问题："+s);
                    index++;
                }
                if(s.indexOf("  - ")>-1){
                    HSSFCell cell = row.getCell(2);
                    cell.setCellValue(s.substring(4));
                    System.out.println("答案："+s);
                    index++;
                }

            }
            stream.close();
            // 将最新的 Excel 数据写回到原始 Excel 文件（就是D盘那个 Excel 文件）中
// 首先要创建一个原始Excel文件的输出流对象！
            FileOutputStream excelFileOutPutStream = new FileOutputStream("C:\\develop\\docs\\聊天机器人\\知识导入数据文件.xls");
// 将最新的 Excel 文件写入到文件输出流中，更新文件信息！
            workbook.write(excelFileOutPutStream);
            // 执行 flush 操作， 将缓存区内的信息更新到文件上
            excelFileOutPutStream.flush();
// 使用后，及时关闭这个输出流对象， 好习惯，再强调一遍！
            excelFileOutPutStream.close();
        } catch (IOException e) {

            e.printStackTrace();
        }


        br.close();
    }
}
